home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / newsgroups / misc.19990725-20000114 / 000210_news@columbia.edu _Mon Oct 18 09:26:33 1999.msg < prev    next >
Internet Message Format  |  2020-01-01  |  4KB

  1. Return-Path: <news@columbia.edu>
  2. Received: from newsmaster.cc.columbia.edu (newsmaster.cc.columbia.edu [128.59.59.30])
  3.     by watsun.cc.columbia.edu (8.8.5/8.8.5) with ESMTP id JAA28303
  4.     for <kermit.misc@watsun.cc.columbia.edu>; Mon, 18 Oct 1999 09:26:33 -0400 (EDT)
  5. Received: (from news@localhost)
  6.     by newsmaster.cc.columbia.edu (8.8.5/8.8.5) id JAA04174
  7.     for kermit.misc@watsun.cc.columbia.edu; Mon, 18 Oct 1999 09:18:35 -0400 (EDT)
  8. X-Authentication-Warning: newsmaster.cc.columbia.edu: news set sender to <news> using -f
  9. From: fdc@watsun.cc.columbia.edu (Frank da Cruz)
  10. Subject: Re: [Q] how to take an action on closing network connection OR redefine a command
  11. Date: 18 Oct 1999 13:18:33 GMT
  12. Organization: Columbia University
  13. Message-ID: <7uf6n9$429$1@newsmaster.cc.columbia.edu>
  14. To: kermit.misc@columbia.edu
  15.  
  16. In article <m2ln91jmj0.fsf@aleph.swift.xxx>,
  17. Matt Swift  <swift@alum.mit.edu> wrote:
  18. : I want to use kermit to telnet to certain remote hosts via a local
  19. : port forwarded by ssh ("tunnelling").  Suppose I want to telnet to my
  20. : isp at shell.isp.com, and suppose I've defined `login' as a kermit
  21. : macro which supplies user and password.  This macro would bring up a
  22. : normal, insecure connection:
  23. : define isp -
  24. :   set host shell.isp.com,-
  25. :   login,-
  26. :   connect
  27. : Now I want to redefine `isp' so that I can use it in the same way but
  28. : it uses the tunelling method.  Suppose I write a shell script `tunnel'
  29. : that will establish the tunnel before exiting.
  30. : define isp,-
  31. :   run tunnel start isp,-
  32. :   set host localhost:9000 /telnet,-
  33. :   login,-
  34. :   connect
  35. As an aside, this would work very nicely in C-Kermit with:
  36.  
  37.   pipe ssh <hostname>
  38.  
  39. except that the UNIX ssh client does not use standard i/o.  Go figure.
  40. (You can pipe rlogin, various telnet clients, cu, etc, but not ssh.)
  41. (And of course we can't put ssh in Kermit itself due to licensing and
  42. legal considerations.)
  43.  
  44. : This works just fine, except that the tunnel must be shut down
  45. : manually.  I would like to improve this macro so that the tunnel will
  46. : be closed (by taken the action `run tunnel stop isp') automatically
  47. : when kermit closes the connection.  I do not see that there is any
  48. : direct way to do this with kermit, so I thought of redefining
  49. : the `close' command.  Unfortunately it does not seem possible.  I tried:
  50. : assign close-orig close
  51. : define close -
  52. :   echo a message,-
  53. :   close-orig
  54. : After this, `close' from the kermit prompt executes the command
  55. : `close' as usual.  It does not execute the macro `close' that I just
  56. : defined.  If I do this:
  57. : define my-close -
  58. :   echo a message,-
  59. :   close-orig
  60. : typing `my-close' from the kermit prompt works as expected.  But this
  61. : is not elegant or convenient IMO. 
  62. You can't define a macro to supersede a built-in command.  Imagine the
  63. mischief you could cause if you could...  If you really want to execeute
  64. a macro whose name is the same as built-in command, use "do", as in
  65. "define close ..." and then "do close".
  66.  
  67. : I would much appreciate any advice on how to arrange that kermit will
  68. : take a definable action when a network connection is closed with
  69. : `close' -- or, prefereably, when it is closed for whatever reason, but
  70. : I though that this was a bit too ambitious to try to accomplish.
  71. :
  72. Something like this maybe?  (C-Kermit 7.0):
  73.  
  74.   define login <script login sequence>
  75.   define shut <commands for shutting down the tunnel>
  76.  
  77.   define isp {
  78.       run tunnel start isp
  79.       set host localhost:9000 /telnet
  80.       if fail end 1 Can't make connection
  81.       login
  82.       if fail end 1 Login failure
  83.       while ( > \v(ttyfd) -1 ) {
  84.       connect
  85.       }
  86.       shut
  87.   }
  88.  
  89. Before 7.0 is released, we might also be able to add an ON_CLOSE macro
  90. capability, similar to the current ON_EXIT macro.
  91.  
  92. - Frank